// components/app-bar/index.js
import { getSafeArea } from '../../utils/util'

Component({
	/**
	 * 组件的属性列表
	 */
	properties: {
		placeholder: { // 是否展示导航等高占位
			type: Boolean,
			value: true
		},
		bgColor: { // 导航背景色
			type: String,
			value: ''
		},
		backBg: { // 是否显示返回按钮背景色
			type: Boolean,
			value: false
		},
		backCloseIcon: { // 是否展示关闭按钮
			type: Boolean,
			value: false
		},
		title: { // 标题
			type: String,
			value: ''
		},
		titleSlot: { // 是否开启title插槽
			type: Boolean,
			value: false
		},
		rewriteBack: { // 是否重写back true时自定实现返回
			type: Boolean,
			value: false
		}
	},

	/**
	 * 组件的初始数据
	 */
	data: {
		rootPage: false,		// 是否是首页
		safeAreaInfo: {}, 	// 设备信息
	},

	lifetimes: {
		async attached() {
			// 获取设备信息
			const safeAreaInfo = await getSafeArea() || {}
			// 是否是根页面
			const rootPage = getCurrentPages().length == 1
			this.setData({
				safeAreaInfo,
				rootPage
			})
		}
	},

	/**
	 * 组件的方法列表
	 */
	methods: {
		_goBack() {
			// 自定实现返回
			if (this.properties.rewriteBack) {
				this.triggerEvent('back')
				return
			}
			// 默认实现
			if (this.data.rootPage) {
				wx.switchTab({ url: '/pages/index/index' })
			} else {
				wx.navigateBack({ delta: 1 })
			}
		}
	}
})

